package com.youlu.campus.service.jinshuju;

import com.youlu.campus.base.exception.BusinessException;
import com.youlu.campus.common.utils.ShotUrlUtil;
import com.youlu.campus.entity.HuoLinkerInfo;
import com.youlu.campus.entity.PlatformConfig;
import com.youlu.campus.service.linker.HuoLinkerInfoService;
import com.youlu.campus.service.platform.PlatformConfigService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;

/**
 * @author : [dengbo]
 * @className : JinShujuShortUrlService
 * @description : [金数据短连接]
 * @createTime : [2023/7/3 15:26]
 */
@Service
@Slf4j
public class JinShuJuShortUrlService {

    @Autowired
    private PlatformConfigService platformConfigService;

    @Autowired
    private HuoLinkerInfoService huoLinkerInfoService;

    public String generateShortUrl(String activityId,String path) {
        log.info("make short url activityId:{},path:{}", activityId,path);
        if (StringUtils.isBlank(activityId)) {
            throw new BusinessException("活动ID为空");
        }
        PlatformConfig platformConfig = platformConfigService.find();
        String u = platformConfig.getJinBizFrontDomain() + platformConfig.getJinCatalogue() + path;
        String shortUrl = ShotUrlUtil.shortUrl(u);
        if (!huoLinkerInfoService.exist(shortUrl)) {
            HuoLinkerInfo huoLinkerInfo = new HuoLinkerInfo();
            huoLinkerInfo.setActivityId(activityId);
            huoLinkerInfo.setBizType("J");
            huoLinkerInfo.setDomain(platformConfig.getJinBizFrontDomain());
            huoLinkerInfo.setCreatedTime(new Date());
            huoLinkerInfo.setUrl(u);
            huoLinkerInfo.setKey(shortUrl);
            huoLinkerInfo.setCatalogue(platformConfig.getJinCatalogue());
            huoLinkerInfo.setVersion("V2");
            huoLinkerInfoService.create(huoLinkerInfo);
        }
        log.info("generate short url activityId:{},shortUrl:{}", activityId, shortUrl);
        return platformConfigService.getShortUrlDomain() + "/"+ shortUrl;
    }
}
